Интерполяция и
аппроксимация
Теоретическая часть
Интерполяция
– один из способов аппроксимации данных. В простейшем (одномерном) случае задача
интерполяции [1-3] состоит в следующем: заданы точки (xi, yi),
и требуется
найти функцию
(x),
которая проходит через эти точки (см. рис. 1),

т.е.
(xi)=
yi ,
.
(1)
Точки
(xi, yi) называют узлами
интерполяции, а функцию
(x)
– интерполирующей функцией или интерполянтом. Вид функции
(x)
определяет способ интерполяции. На практике в качестве интерполирующей функции
(x)
часто используются алгебраические полиномы различного вида, так как полиномы
легко вычислять, дифференцировать и интегрировать. При этом интерполяция носит
название полиномиальной.
Рассмотрим
задачу линейной интерполяции. При этом интерполирующая функция имеет
следующий вид:
,
(2)
где
0(x),
1(x), … ,
m(x)
– базисные функции.
Используя
условие (1) и выражение (2), получаем систему уравнений
(3)
Единственное
решение системы (3) существует при двух условиях:
1. число точек (xi, yi),
равно числу
коэффициентов Сk,
;
2. система уравнений (3) должна
быть невырожденной, т.е. определитель системы
.
Таким
образом, если выполняются вышеуказанные условия, то через точки (xi, yi)
проходит единственная функция
.
В
случае линейной полиномиальной интерполяции базисные функции имеют
следующий вид:
0(x)= x0=1,
1(x)= x1=x,
2(x)= x2, … ,
m(x)= xm.
Интерполирующая функция при этом имеет вид полинома степени m:
(x)=
Pm(x)=C0 + C1 x + C2
x 2 + … +Cm x
m и, следовательно, система (3) примет вид
(4)
В
матричной форме систему (4) можно переписать как А*C=B, где
– матрица Ван
дер Монда;
;
.
Решением
системы (4) будет вектор коэффициентов полинома С. Так как определитель
матрицы Ван дер Монда всегда отличен от нуля (при xi
xj), то решение системы (4) – единственное. Для решения
системы (4) необходимо найти обратную матрицу A. В этом случае решением
(4) будет C=A–1*B.
Вывод: Таким образом, через заданные на интервале [a, b]
точки (xi, yi),
всегда можно
провести единственный интерполяционный полином
(x)=Pn(x)=C0 + C1 x +
+ C2 x2 + … +Cn
x n, коэффициенты которого находятся в результате
решения системы (4).
Выражение
(1) определяет поведение функции
(x)
только в узлах интерполяции (xi, yi),
. Между
узлами
(x)
может вести себя произвольным образом, сколь угодно далеко, в принципе,
отклоняясь от зависимости f(x). Определить погрешность
приближения можно, используя выражение для абсолютной ошибки
=| f(x)
–
(x) |.
Ошибка полиномиальной интерполяции. Лучший способ
проверить качество интерполяции – вычислить значения интерполирующей функции в
большом числе точек и построить график. Однако в некоторых ситуациях качество
интерполянта можно проанализировать. Предположим, что величина yi
представляет собой точные значения известной функции f(x) в
точках xi. Пусть Pn(x) –
единственный полином n-й степени, интерполирующий функцию по этим точкам
(xi, yi),
.
Предположим, что во всех точках х
[a, b]
функция f(x) имеет (n+1) непрерывную производную. Тогда
можно показать [1, 2], что абсолютная ошибка интерполяции
(x)=| f(x)–
Pn(x) | определяется выражением
,
(5)
где
-
максимальное значение (n+1)-й производной функции f(x) на
интервале [a, b];
.
Теперь
посмотрим, что получится, если интерполировать известную функцию f(x)
все в большем и большем числе точек на фиксированном интервале. Выражение для
погрешности (5) состоит из трех разных частей; факториал и произведение
разностей с увеличением n уменьшают ошибку, но порядок производной при
этом растет. Для многих функций величина Mn+1
увеличиваются быстрее, чем (n+1)!. В результате полиномиальные
интерполянты редко сходятся к обычной непрерывной функции. Практический эффект
выражается в том, что интерполирующий полином высокой степени может вести
себя "плохо" в точках, отличных от узлов интерполяции (xi, yi),
. Поэтому на
практике часто используют интерполянты степени не выше 5-6.

Рисунок 2 –
интерполяция функции Рунге полиномом степени n
Примером
может служить функция Рунге [4] вида R(x)=1/(1+25x2),
график которой представлен на рис. 2. С увеличением порядка интерполирующего
полинома при равномерном распределении узлов интерполяции на интервале
[–1, 1] происходит ухудшение качества приближения на краях интервала. Это
объясняется тем, что производные R(x), которые фигурируют в
выражении для погрешности интерполяции (5), быстро растут с увеличением числа n.
Точность
приближения зависит не только от числа узлов интерполяции (т.е. порядка
интерполирующего полинома), но и от их расположения на интервале [a, b].
В простейшем случае выбирается равномерное расположение точек (xi, yi),
на интервале
[a, b] с шагом
x=(b–a)/(n–1).
Однако, как показывает практика, равномерное расположение не является
оптимальным с точки зрения лучшего приближения j (x) к зависимости f(x).
Более оптимальным для полиномиальной интерполяции является расположение узлов
на интервале [a, b] по формуле Чебышева
,
.
(6)
Выражение
(6) определяет так называемое оптимальное распределение узлов
интерполяции на интервале [a, b].
1. Функция задана аналитически:
![]()
Постройте график функции. Осуществите интерполяцию
функции. Постройте график интерполянты и погрешности интерполяции.
Выполните интерполяцию функции s(t) кубическим
сплайном. Постройте графики базисных функций, кубического сплайна и погрешности
интерполяции.
Выполните аппроксимацию функции. Постройте графики
аппроксимирующей функции и погрешности аппроксимации.
2. Исследовать точность приближения с помощью полинома Pn(x)
следующих трех функций (см. Приложение А):
а) функции 1 из таблицы заданий на лабораторную
работу;
б) полинома Pm(x) из таблицы (выполнить расчет для
случаев n<m, n=m, n>m, где n - порядок интерполирующего полинома);
в) функции 2 из таблицы заданий.
По результатам испытаний для каждой исходной
функции заполнить таблицу (приведена ниже) или построить график зависимости
максимальной ошибки
max
от порядка интерполирующего полинома n (или числа узлов).
|
Порядок полинома Pn(x) |
Максимальная ошибка |
|
|
Равномерное распределение узлов |
Оптимальное распределение узлов |
|
|
4 |
|
|
Кроме
этого, для полинома Pm(x) заполнить таблицу следующего
вида (приведена ниже), т.е. привести значения коэффициентов интерполирующих
полиномов P1(x) и P2(x), и
сравнить коэффициенты исходного Pm(x) и
интерполирующего Pn(x) полиномов для случаев n<m,
n=m, n>m).
|
Порядок полинома Pn(x) |
Равномерное распределение узлов |
Оптимальное распределение узлов |
||
|
коэффициенты полинома P1(x) |
|
коэффициенты полинома P2(x) |
|
|
|
3 |
C0 = |
|
C0 = |
|
|
C1 = |
C1 = |
|||
|
C2 = |
C2 = |
|||
|
C3 = |
C3 = |
|||
Таблица
П.А – Варианты заданий на лабораторную работу
|
№ варианта |
Функция 1 |
Интервал |
Полином Pm(x) |
Интервал |
Функция 2 |
Интервал |
|
1 |
|
|
|
[0, 2] |
|
[0, 10] |
|
2 |
|
|
|
[-2, 3] |
|
[-8, 5] |
|
3 |
|
|
|
[-4, 1] |
|
[-2, 4] |
|
4 |
|
|
|
[-1, 2] |
|
[-5, 8] |
|
5 |
|
|
|
[-3, 2] |
|
[-5, 5] |
|
6 |
|
|
|
[-1, 3] |
|
[-1, 2] |
|
7 |
|
|
|
[-4, 7] |
|
[0, 8] |
|
8 |
|
|
|
[-5, 8] |
|
[-5, 3] |
|
9 |
|
|
|
[-2, 5] |
|
[-3, 4] |
|
10 |
|
|
|
[-2, 3] |
|
[-5, 7] |